﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Input;
using System.Xml;
using System.Xml.Serialization;

using ABCat.Core.Plugins;
using ABCat.Shared;
using ABCat.Shared.Properties;

namespace ABCat.Core
{
	[UsedImplicitly]
	[DisplayName("Основные настройки")]
	public class MainConfig : Config
	{
		#region + Fields +

		private int _groupActualityPeriod;
		private int _recordActualityPeriod;

		#endregion
		#region + Properties +

		public override string DisplayName
		{
			get { return "Основные настройки"; }
		}

		[DisplayName("Период актуальности группы, дней")]
		[Description("Период, в течении которого загруженная группа записей считается актуальной и не загружается повторно при обновлении")]
		public int GroupActualityPeriod
		{
			get { return _groupActualityPeriod; }
			set
			{
				if (value == _groupActualityPeriod) return;
				_groupActualityPeriod = value;
				OnPropertyChanged();
			}
		}

		[DisplayName("Период актуальности записи, дней")]
		[Description("Период, в течении которого загруженная запись считается актуальной и не загружается повторно при обновлении")]
		public int RecordActualityPeriod
		{
			get { return _recordActualityPeriod; }
			set
			{
				if (value == _recordActualityPeriod) return;
				_recordActualityPeriod = value;
				OnPropertyChanged();
			}
		}

		#endregion
		#region + Logic +

		public override bool Check(bool correct)
		{
			if (RecordActualityPeriod == 0) RecordActualityPeriod = 30;
			if (GroupActualityPeriod == 0) GroupActualityPeriod = 1;

			return true;
		}

		#endregion
	}
}